Project Structure

The goal of this document is to list all the different folders and files in the project with its functionality.

_docs

It contains all the markdown code used to generate the documentation following the arc42 template. It also contains an "images/" folder to store all the images used. The "SUMMARY" file is used by gitbook as TOC.

e2e

It contains all the e2e tests (using Cucumber). It has 3 main folders inside "src/":

  • features/: Cucumber test cases
  • page_objects/: utilities used for testing (navigation, click...)
  • steps/: actual source code that combines page objects with the test cases following the structure defined in the features/"file" associated

In addition it also has two files for configuration:

  • protractor.conf.js: the configuration for the Protactor test runner
  • tsconfig.e2e.json: has as parent tsconfig.json, and it's the configuration of the Typescript compiler

node_modules

(Included in .gitignore)

All the local dependencies.

src

All the source code of the app. With this folders:

  • app/:
    • Contains all the components, each of them with this folder structure contained in a folder with component's name (for a given component of name "sample"):
      • sample.component.css: specific CSS stylesheet applied only to this component
      • sample.component.html: specific HTML code to be inserted
      • sample.component.spec.ts: unit testing code for the component
      • sample.component.ts: main component code
    • app.component.* files: same behaviour as previously defined for the individual components but in this case it's the for the root component
    • app.module.ts: used to define the root module and all the imports regarding components or services
    • models/: entities used in the project written in Typescript:
      • chat-message.model.ts: chat message model
      • solid-profile.model.ts: user's profile model
      • solid-provider.model.ts: SOLID provider model
      • solid-session.model.ts: user's session model
      • user.model.ts: user model
    • services/:
      • auth.guard.service.ts: service that controls the access to the different routes in the app
      • chat.service.ts: service that communicates the app with SOLID using the rdf.service.ts
      • chat.service.spec.ts: test for the service
      • rdf.service.ts: interacts with SOLID posting and getting data
      • solid.auth.service.ts: used to login and logout and to show the login popup
    • popup.html: HTML SOLID login popup
  • assets/: all the static resources of the app such as libraries, types or images
  • environments: build configurations for different environments (production, development...)
  • locale/: all the internationalization files in XLIFF format.
  • browserslist: determines CSS compatibilities with different browsers
  • favicon.ico: the main icon of the app
  • index.html: base html where the root of the app is placed (app-root)
  • karma.conf.ts: configuration file for the Karma test runner, in this case for unit testing
  • main.ts: loads everything and controls the startup of the application
  • polyfills.ts: determines specific scripts for browser compatibilities
  • styles.css: general CSS stylesheet of the application
  • test.ts: loads everything and controls all the functionalities regarding the tests, such as loading the TestBed (test context for execution)
  • tsconfig.app.json: has as parent tsconfig.json, and it's the configuration of the Typescript compiler for the app
  • tsconfig.spec.json: has as parent tsconfig.json, and it's the configuration of the Typescript compiler for the tests
  • tslint.json: has as parent tsconfig.json, and it's the configuration of the Typescript linter of the app
  • xliffmerge.json: configuration file used for managing the .xlf files regarding internationalization (to merge the new ones and the old ones when calling the command to detect new strings to be internationalized)

Others (in the root)

  • .editorconfig: general configuration for the IDE (encoding, tabulation...)
  • .gitignore: to exclude files when uploading to Git
  • .travis.yml: configuration file for the continuous integration environment (versions, scripts to be executed...)
  • angular.json: Angular CLI configuration and options for the tools defined by the CLI such as serve, build and test
  • book.json: gitbook configuration file, in this case for the theme
  • LICENSE: license of the project, in this case MIT
  • package.json: all the metadata of the project, including, also, the definition of the scripts and dependencies (normal + development)
  • package-lock.json: full dependency tree of the project
  • popup.js: code for generating the SOLID login popup
  • README: the readme with all the info of the project
  • tsconfig.json: Typescript compiler configuration for the whole workspace
  • tslint.json: Typescript linter configuration for the whole workspace

results matching ""

    No results matching ""